# 1. 要求的最低CMake版本
cmake_minimum_required(VERSION 3.14)

# 2. 项目名称
project(ExecutorTest)

# 3. 包含头文件目录（关键修改：适配当前include文件夹结构）
include_directories(
    ${CMAKE_SOURCE_DIR}/include # 根目录下的include
    ${CMAKE_SOURCE_DIR}/include/command # command模块头文件
    ${CMAKE_SOURCE_DIR}/include/core # core模块头文件
    ${CMAKE_SOURCE_DIR}/src # 保留src目录（若有需要）
)

# 4. 引入本地的Google Test
add_subdirectory(third_party/googletest-1.17.0)

# 5. 创建测试可执行文件（关键修改：按当前文件夹结构列出所有源文件）
add_executable(ExecutorTest

    # 测试代码
    test/executor_test.cpp

    # 核心源文件（按模块列出）
    src/core/Executor.cpp
    src/core/Pose.cpp
    src/command/CmderFactory.cpp
    src/command/ConcreteCommands.cpp
)

# 6. 链接Google Test库
target_link_libraries(ExecutorTest
    GTest::gtest
    GTest::gtest_main
    GTest::gmock
    pthread # 新增：解决GTest可能的线程库依赖
)

# 7. 设置C++标准
target_compile_features(ExecutorTest PRIVATE cxx_std_11)

# 8. 启用Google Test自动发现
include(GoogleTest)
gtest_discover_tests(ExecutorTest
    TEST_PREFIX "Test_"
    TEST_SUFFIX ""
    PROPERTIES TIMEOUT 30
)